package com.example.controller;

import com.example.service.BorderSize;

public class Result implements BorderSize {
    public boolean flag = false;
    public int r,c;

    public boolean WinOrLoss(){

        if(resultH(r,c)>=5||resultS(r,c)>=5||resultL(r,c)>=5||resultR(r,c)>=5){
            return !flag;
        }else {
            return flag;
        }

    }

    //横向判断
    public int resultH(int r,int c){
        int count=1;
        //往左走
        for(int i=c-1;i>=0;i--){
            if(chessArray[r][c]==chessArray[r][i]&&chessArray[r][i]!=0){
                count++;
            }else {
                break;
            }
        }
        //往右走
        for(int i=c+1;i<ROW;i++){
            if(chessArray[r][c]==chessArray[r][i]&&chessArray[r][i]!=0){
                count++;
            }else {
                break;
            }
        }
        return count;
    }

    //竖向判断
    public int resultS(int r,int c){
        int count=1;
        //往上走
        for(int i=r-1;i>=0;i--){
            if(chessArray[r][c]==chessArray[i][c]&&chessArray[i][c]!=0){
                count++;
            }else {
                break;
            }
        }
        //往下走
        for(int i=r+1;i<ROW;i++){
            if(chessArray[r][c]==chessArray[i][c]&&chessArray[i][c]!=0){
                count++;
            }else {
                break;
            }
        }
        return count;
    }
    //斜向判断（左上到右下）
    public int resultL(int r,int c){
        int count=1;
        //往左走
        for(int i=r-1,j=c-1;i>=0&&j>=0;i--,j--){
            if(chessArray[i][j]==chessArray[r][c]&&chessArray[i][j]!=0){
                count++;
            }else{
                break;
            }
        }
        //往右走
        for(int i=r+1,j=c+1;i<ROW&&j<COLUM;i++,j++){
            if(chessArray[i][j]==chessArray[r][c]&&chessArray[i][j]!=0){
                count++;
            }else {
                break;
            }
        }
        return count;
    }
    //斜向判断（左下到右上）
    public int resultR(int r,int c){
        int count=1;
        //往左走
        for(int i=r+1,j=c-1;i<ROW&&j>=0;i++,j--){
            if(chessArray[i][j]==chessArray[r][c]&&chessArray[i][j]!=0){
                count++;
            }else {
                break;
            }
        }
        //往右走
        for(int i=r-1,j=c+1;i>=0&&j<ROW;i--,j++){
            if(chessArray[i][j]==chessArray[r][c]&&chessArray[i][j]!=0){
                count++;
            }else {
                break;
            }
        }
        return count;
    }
}
